HTMLify
710. Random Pick with Blacklist.java
Views: 1 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // 710. Random Pick with Blacklist class Solution { HashMap<Integer,Integer> map; Random r; int valid; public Solution(int n, int[] blacklist) { map = new HashMap<>(); r = new Random(); for(int i =0; i<blacklist.length; i++){ map.put(blacklist[i],-1); } valid = n - blacklist.length; for(int i = 0; i<blacklist.length; i++){ if(blacklist[i]<valid){ while(map.containsKey(n-1)==true){ n--; } map.put(blacklist[i],n-1); n--; } } } public int pick() { int val = r.nextInt(valid); if(map.containsKey(val) == true ){ return map.get(val); } else { return val; } } } |